home *** CD-ROM | disk | FTP | other *** search
Wrap
on MAC_initVR global gPanoMovieID, gNavMovieID, gPathName, gLastTimeRollover, gPanoFrame, gPanoCallBackFactory, gTestCallbackFactory, gQTVRCallBackFactory set gPanoMovieID to EMPTY set gNavMovieID to EMPTY set gPathName to EMPTY set gLastTimeRollover to 0 set gPanoFrame to EMPTY openXLib("QuickTime VR XCMDs") RegisterComponent(the pathName & "QuickTime VR Components", EMPTY) set gPanoCallBackFactory to thCallbacks(mnew) set gQTVRCallBackFactory to CallBackTracer(mnew) setCallBack(#PanoMovie, gQTVRCallBackFactory) end on MAC_cleanUpVR global gPanoCallBackFactory, gTestCallbackFactory ClosePanoMovie() CloseNavMovie() closeXLib("QuickTime VR XCMDs") if objectp(gPanoCallBackFactory) then gPanoCallBackFactory(mdispose) end if end on MAC_OpenNavMovie pFilename, pSpriteNum, pShowOnOpen global gNavMovieID CloseNavMovie() set gNavMovieID to NavMovie("openMovie", "Direct", pFilename, the left of sprite pSpriteNum & "," & the top of sprite pSpriteNum, "ShowPoster", "Invisible") if gNavMovieID contains "error" then put gNavMovieID set gNavMovieID to EMPTY beep() exit end if if pShowOnOpen then NavMovie("Direct", gNavMovieID, "update") end if end on MAC_ShowNavMovie global gNavMovieID if gNavMovieID <> EMPTY then NavMovie("Direct", gNavMovieID, "update") end if end on MAC_ZoomNavMovie pStartZoomRect, pSkipFirstFrame, pClipRect global gNavMovieID if gNavMovieID <> EMPTY then set tCommand to "ZoomOutMovie" && QUOTE & pStartZoomRect & QUOTE if not voidp(pSkipFirstFrame) then set tCommand to tCommand & "," & pSkipFirstFrame end if if not voidp(pClipRect) then set tCommand to tCommand & "," & QUOTE & pClipRect & QUOTE end if NavMovie("Direct", gNavMovieID, tCommand) NavMovie("Direct", gNavMovieID, "idle") end if end on MAC_SetNavMovieView pHPan, pVPan global gNavMovieID if gNavMovieID <> EMPTY then NavMovie("Direct", gNavMovieID, "set", "hPanAngle", pHPan) NavMovie("Direct", gNavMovieID, "set", "vPanAngle", pVPan) end if end on MAC_CloseNavMovie global gNavMovieID if gNavMovieID <> EMPTY then NavMovie("Direct", gNavMovieID, "dispose") set gNavMovieID to EMPTY end if end on MAC_NavFrameScript pSpriteNum global gNavMovieID if (gNavMovieID <> EMPTY) and (RunningInForeground() = "true") then if rollOver(pSpriteNum) then NavMovie("Direct", gNavMovieID, "mouseOver") cursor(200) cursor(-1) else NavMovie("Direct", gNavMovieID, "idle") end if end if end on MAC_OpenPanoMovie pFilename, pSpriteNum, pShowOnOpen global gPanoMovieID, gPathName, gPanoCallBackFactory ClosePanoMovie() set tPanoRect to the left of sprite pSpriteNum & "," & the top of sprite pSpriteNum & "," & the right of sprite pSpriteNum & "," & the bottom of sprite pSpriteNum set gPanoMovieID to PanoMovie("openMovie", "Direct", pFilename, tPanoRect) if gPanoMovieID contains "error" then put gPanoMovieID set gPanoMovieID to EMPTY beep() exit end if set gPathName to ExtractPathName(pFilename) InitPanoCallbacks() if pShowOnOpen then PanoMovie("Direct", gPanoMovieID, "update") end if end on MAC_InitPanoCallbacks global gPanoMovieID if gPanoMovieID <> EMPTY then PanoMovie("Direct", gPanoMovieID, "set", "mouseOverHandler", EMPTY) PanoMovie("Direct", gPanoMovieID, "set", "rolloverHotSpotHandler", "rolloverHandler") PanoMovie("Direct", gPanoMovieID, "set", "mouseDownHandler", EMPTY) PanoMovie("Direct", gPanoMovieID, "set", "panZoomStartHandler", EMPTY) PanoMovie("Direct", gPanoMovieID, "set", "mouseStillDownHandler", EMPTY) PanoMovie("Direct", gPanoMovieID, "set", "nodeLeaveHandler", EMPTY) end if end on MAC_ShowPanoMovie pQuality global gPanoMovieID if gPanoMovieID <> EMPTY then if not voidp(pQuality) then PanoMovie("Direct", gPanoMovieID, "set", "quality", pQuality) end if PanoMovie("Direct", gPanoMovieID, "update") end if end on MAC_SetPanoNode pNodeID, pUpdate, pQuality global gPanoMovieID if gPanoMovieID <> EMPTY then PanoMovie("Direct", gPanoMovieID, "set", "nodeID", pNodeID) if not voidp(pQuality) then PanoMovie("Direct", gPanoMovieID, "set", "quality", pQuality) end if if pUpdate then PanoMovie("Direct", gPanoMovieID, "Update") end if end if end on MAC_SwingPanoMovie pHPan, pVPan, pZoom, pSwingSpeed, pSwingQuality, pFinalQuality global gPanoMovieID if gPanoMovieID <> EMPTY then PanoMovie("Direct", gPanoMovieID, "set", "zoomAngle", pZoom) PanoMovie("Direct", gPanoMovieID, "set", "vPanAngle", pVPan) PanoMovie("Direct", gPanoMovieID, "set", "hPanAngle", pHPan) PanoMovie("Direct", gPanoMovieID, "set", "quality", pSwingQuality) PanoMovie("Direct", gPanoMovieID, "set", "transitionMode", "swing") PanoMovie("Direct", gPanoMovieID, "set", "transitionSpeed", pSwingSpeed) PanoMovie("Direct", gPanoMovieID, "update") PanoMovie("Direct", gPanoMovieID, "set", "transitionMode", "normal") if pFinalQuality <> pSwingQuality then PanoMovie("Direct", gPanoMovieID, "set", "quality", pFinalQuality) PanoMovie("Direct", gPanoMovieID, "update") end if end if end on MAC_CollapsePanoMovie global gPanoMovieID if gPanoMovieID <> EMPTY then PanoMovie("Direct", gPanoMovieID, "CollapseToHotSpotRgn") end if end on MAC_SetPanoMovieView pHPan, pVPan, pZoom, pQuality global gPanoMovieID if gPanoMovieID <> EMPTY then PanoMovie("Direct", gPanoMovieID, "set", "zoomAngle", pZoom) PanoMovie("Direct", gPanoMovieID, "set", "vPanAngle", pVPan) PanoMovie("Direct", gPanoMovieID, "set", "hPanAngle", pHPan) if not voidp(pQuality) then PanoMovie("Direct", gPanoMovieID, "set", "quality", pQuality) end if PanoMovie("Direct", gPanoMovieID, "update") end if end on MAC_ClosePanoMovie global gPanoMovieID if gPanoMovieID <> EMPTY then PanoMovie("Direct", gPanoMovieID, "dispose") set gPanoMovieID to EMPTY end if end on MAC_PanoFrameScript pSpriteNum global gLastTimeRollover, gPanoMovieID, gLastPanoMovieData, gPathName, gNavMovieID, gPanoFrame if rollOver(pSpriteNum) then if (gPanoMovieID <> EMPTY) and (RunningInForeground() = "true") then PanoMovie("Direct", gPanoMovieID, "mouseOver") set tMouseOverResult to the result if tMouseOverResult <> 0 then set tAction to item 1 of tMouseOverResult if tAction = "jump" then put item 2 of tMouseOverResult into field "Current Node ID" else if tAction = "stil" then put item 2 of tMouseOverResult into field "Current Hot Spot ID" else if tAction = "navg" then set tHotSpotID to item 2 of tMouseOverResult put tHotSpotID into field "Current Hot Spot ID" set tStartZoom to PanoMovie("Direct", gPanoMovieID, "get", "navgZoomRect") set tViewAngles to PanoMovie("Direct", gPanoMovieID, "get", "navgViewAngles") set tFileName to PanoMovie("Direct", gPanoMovieID, "get", "hotSpotName") CollapsePanoMovie() OpenNavMovie(gPathName & ":" & tFileName, 2, 0) if gNavMovieID <> EMPTY then set gPanoFrame to marker(0) go("Object From Pano") SetNavMovieView(item 1 of tViewAngles, item 2 of tViewAngles) set tClipRect to the left of sprite 2 & "," & the top of sprite 2 & "," & the right of sprite 2 & "," & the bottom of sprite 2 ZoomNavMovie(tStartZoom, "true", tClipRect) else PanoMovie("Direct", gPanoMovieID, "update") end if else if tAction = "misc" then put item 2 of tMouseOverResult into field "Current Hot Spot ID" else if tAction = "undf" then hitHotspot(item 2 of tMouseOverResult) else if tAction = "pan " then end if end if end if end if end if end if set gLastTimeRollover to 1 else if rollOver(pSpriteNum) then set gLastTimeRollover to 1 else cursor(200) cursor(-1) set gLastTimeRollover to 0 end if end if end if else if gLastTimeRollover then cursor(200) cursor(-1) set gLastTimeRollover to 0 if gPanoMovieID <> EMPTY then PanoMovie("Direct", gPanoMovieID, "idle") end if end if end if end on MAC_PanoGetHPanAngle global gPanoMovieID PanoMovie("Direct", gPanoMovieID, "get", "hPanAngle") put the result return value(the result) end on MAC_PanoGetVPanAngle global gPanoMovieID PanoMovie("Direct", gPanoMovieID, "get", "vPanAngle") return value(the result) end on MAC_PanoGetZoomAngle global gPanoMovieID PanoMovie("Direct", gPanoMovieID, "get", "zoomAngle") return value(the result) end on MAC_ExtractPathName pPathName set tDelimiter to ":" if pPathName contains tDelimiter then set tCharPos to length(pPathName) repeat while tCharPos >= 1 if char tCharPos of pPathName = tDelimiter then return char 1 to tCharPos - 1 of pPathName end if set tCharPos to tCharPos - 1 end repeat return EMPTY else return EMPTY end if end factory CallBackTracer method mnew method mEvalExpr pExpr method mSendHCMessage pMessage method mSendCardMessage pMessage do(pMessage) method mGetFieldByName pCard, pName method mGetFieldByNum pCard, pNum method mGetFieldByID pCard, pID method mSetFieldByName pCard, pName, pValue method mSetFieldByNum pCard, pNum, pValue method mSetFieldByID pCard, pID, pValue